//
//  StringUtil.h
//  Platform
//
//  Created by 张宁宁 on 16/9/22.
//  Copyright © 2016年 lirenkj. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface StringUtil : NSObject

/**
 * 将一个字符串数组 连接成一个字符串
 * @param array     字符串数组
 * @param sep       连接字符串
 * @return          连接后的字符串
 */

+ (NSString *)jion:(NSArray *)array separator:(NSString *)sep;


/**
 * 将一个字符串拆分成数组
 * @param string    字符串
 * @param sep       分隔符
 * @return          数组
 */

+ (NSArray *)splitString:(NSString *)string separator:(NSString *)sep;

/**
 * 判断字符串是否为空
 * @param string    字符串
 * @param isTrim    是否需要两端去空格
 * @return          是/否 为空
 */

+ (BOOL)isEmpty:(NSString *)string needTrim:(BOOL)isTrim;

/**
 * 去字符串两端空格
 * @param string    字符串
 * @return          去掉两端空格的字符串
 */

+ (NSString *)trim:(NSString *)string;

/**
 * 判断字符串是否含有别的字符串
 * @param string    字符串
 * @param str       被包含的字符串
 * @return          是/否 包含
 */

+ (BOOL)isContain:(NSString *)string searchStr:(NSString *)str;

/**
 * 字符串替换
 * @param string        原字符串
 * @param str           需要被替换的字符串
 * @param replaceStr    替换字符串
 * @return              替换后的字符串
 */

+ (NSString *)replace:(NSString *)string
            searchStr:(NSString *)str
           replaceStr:(NSString *)replaceStr;

/**
 * 截断字符
 * @param string    原字符串
 * @param start     开始位置
 * @param end       结束位置（开区间）
 * @return          截断后的字符串
 */
+ (NSString *)subString:(NSString *)string startIndex:(int)start endIndex:(int)end;
/**
 * 截断字符
 * @param string    原字符串
 * @param start     开始位置
 * @return          截断后的字符串
 */
+ (NSString *)subString:(NSString *)string startIndex:(int)start;
/**
 * 判断一个字符串是否以一个字符串开头
 * @param string    原字符串
 * @param searchStr 开头字符
 * @return          是/否 开头
 */
+ (BOOL)startWith:(NSString *)string searchStr:(NSString *)searchStr;
/**
 * 判断一个字符串是否以一个字符串结尾
 * @param string    原字符串
 * @param searchStr 结尾字符
 * @return          是/否 结尾
 */
+ (BOOL)endWith:(NSString *)string searchStr:(NSString *)searchStr;
/**
 * 判断两个字符串是否相同
 * @param string    源字符串
 * @param otherStr  比较字符串
 * @return          是/否 相同
 */
+ (BOOL)equals:(NSString *)string otherStr:(NSString *)otherStr;
/**
 * 判断两个字符串是否相同，忽略大小写
 * @param string    源字符串
 * @param otherStr  比较字符串
 * @return          是/否 相同
 */
+ (BOOL)equalsIgnoreCase:(NSString *)string otherStr:(NSString *)otherStr;
/**
 * 查找给定字符串在原字符串中首次出现的位置
 * @param string    原字符串
 * @param searchStr 给定字符串
 * @return          位置号
 */
+ (int)indexOf:(NSString *)string searchStr:(NSString *)searchStr;
/**
 * 查找给定字符串在原字符串中最后一次出现的位置
 * @param string    原字符串
 * @param searchStr 给定字符串
 * @return          位置号
 */
+ (int)lastIndexOf:(NSString *)string searchStr:(NSString *)searchStr;

/**
 * 将一个字符串转换成base64编码
 * @param string    原字符串
 * @return          base64字符串
 */
+ (NSString *)stringToBase64:(NSString *)string;
/**
 * 将一个base64的字符串转换成原字符串
 * @param string    base64字符串
 * @return          原字符串
 */
+ (NSString *)base64ToString:(NSString *)string;

/**
 手机号合法性校验
 @param phoneNum 手机号
 @return YES or NO
 */
+ (BOOL)checkoutPhoneNum: (NSString *)phoneNum;

/**
 身份证合法性校验
 @param userID 身份证号
 @return YES or NO
 */
+ (BOOL)checkUserID:(NSString *)userID;

/**
 修改数字展示
 @param numberString 原始数字
 @return 超过1000显示K
 */
+ (NSString *)changeLookNumberToNeed:(NSString *)numberString;

/**
 根据省市区ID获取名称

 @param rowOfProvince 省编码
 @param rowOfCity 市编码
 @param rowOfTown 区编码
 @return 陕西省 西安市 雁塔区
 */
+ (id)getAddressByProvinceCode:(NSInteger)rowOfProvince andCityID:(NSInteger)rowOfCity andTownID:(NSInteger)rowOfTown andIsAlignment:(BOOL)isAlignment;

/**
 *  将时间戳转换为时间
 *
 *  @param dateString 时间戳
 *
 *  @return 标准时间
 */
+ (NSString *)changeDateStringToDate:(NSString *)dateString;
@end
